Most apps are CRUD apps. This is a fancy way of saying, most apps just create instances of something, read it, update it and then delete it. For instance you might create users, read users, update users and delete users.
Hence, the core to every app, rather unsurprisingly, is data. We want to store how many shoes we have in stock, or messages sent in our social media app.
The first keystone document we should create for any app, with the help of ai, before we start coding is, what are the use cases and scenarios in your app, and how does this inform our data design? It doesn’t matter how strong or studious you or your horse is, if you have no damn clue where you are trying to go, and how you are going to end up there. We want to really understand what we are building! Nowadays since building is a lot quicker, understanding the system, talking to clients and carefully designing the solution requires significant attention, an area unfortunately oft neglected :(.
For instance, a car dealership has 5 locations, and each location has a number of cars. A user might want to see all cars at a particular location etc. etc. This will inform our database.md, a critical file for the rest of our development. If you are unfamiliar with how SQL or noSQL databases work, start by learning the basics of a SQL database. Then understanding noSQL databases or other types of databases should not be too tricky. Here’s a Fireship video to get an overview in 10 minutes: https://www.youtube.com/watch?v=W2Z7fbCLSTw.
The database is the foundation of all apps. This is where all the information is stored. If its design is shaky or poorly thought out, you’ll waste huge amounts of time running in circles and refactoring old code (speaking from experience). Therefore it is crucial you have a document with the actual database schema, whether SQL or no-SQL, and a list of common operations clearly defined for the AI to look at.
Later on when the AI is building business logic, as long as it reads this document, it’ll be highly unlikely for it to hallucinate or get something totally wrong.
Start with your database schema, define basic operations. You’ll be well set up for the rest of your coding journey. Does each dealership have fields like name? How do we know which cars are in which dealership? How do we move cars between dealerships?
This is also reminiscent of Domain Driven Development.